home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk122 / popup / source / altstartup.a < prev    next >
Text File  |  1995-03-19  |  2KB  |  97 lines

  1.            INCLUDE      "exec/types.i"
  2.            INCLUDE      "libraries/dos.i"
  3.            INCLUDE      "libraries/dosextens.i"
  4.            INCLUDE      "exec/execbase.i"
  5.            INCLUDE      "exec/funcdef.i"
  6.            INCLUDE      "exec/exec_lib.i"
  7.            INCLUDE      "libraries/dos_lib.i"
  8.  
  9. AbsExecBase    EQU      4
  10. POPUPPRI       EQU      5
  11. POPUPSTACK     EQU      2000
  12. * Must use Kickstart 1.2 or higher
  13. LIBVERSION     EQU      33
  14.  
  15.            xref      _LinkerDB
  16.            xref      @InitPopUpMenu
  17.            xref      _PopUpTaskName
  18.  
  19.            section      text,code
  20.  
  21. Startup        MOVEM.L      D2-D4/A2-A4/A6,-(A7)
  22.            LEA      _LinkerDB,A4
  23.  
  24. * ------------ Open dos.
  25.            LEA      DosName(PC),A1
  26.            MOVEQ.L      #LIBVERSION,D0
  27.            MOVEA.L      AbsExecBase.W,A6
  28.            JSR      _LVOOpenLibrary(A6)
  29.            MOVE.L      D0,_DOSBase(A4)
  30.  
  31.            TST.L      D0
  32.            BEQ.W      NoDos
  33.  
  34. * ------------ Get pointer to our Process.
  35.            MOVEA.L      ThisTask(A6),A3
  36.  
  37. * ------------ Find current output window.
  38.            MOVE.L      #CurrWindow,D1
  39.            MOVE.L      #MODE_OLDFILE,D2
  40.  
  41. * ------------ Run from Workbench ?
  42.            TST.L      pr_CLI(A3)
  43.            BNE.B      FromCLI
  44.  
  45. * ------------ Wait for Workbench startup-message.
  46.            LEA      pr_MsgPort(A3),A0
  47.            JSR      _LVOWaitPort(A6)
  48.            LEA      pr_MsgPort(A3),A0
  49.            JSR      _LVOGetMsg(A6)
  50.            MOVE.L      D0,D3
  51.  
  52. * ------------ Open window on Workbench screen.
  53.            MOVE.L      #WbWindow,D1
  54.            MOVE.L      #MODE_NEWFILE,D2
  55. FromCLI        MOVEA.L      _DOSBase(A4),A6
  56.            JSR      _LVOOpen(A6)
  57.            MOVE.L      D0,_StdOut(A4)
  58.  
  59.            MOVEA.L      AbsExecBase.W,A6
  60.            TST.L      D0
  61.            BEQ.B      NoStdOut
  62.  
  63. * ------------ Don't unload segments.
  64.            CLR.L      _PopUpSeg(A4)
  65.  
  66. * ------------ Set task priority.
  67.            MOVEA.L      A3,A1
  68.            MOVEQ      #POPUPPRI,D0
  69.            JSR      _LVOSetTaskPri(A6)
  70.  
  71. * ------------ Start PopUpMenu-program.
  72.            JSR      @InitPopUpMenu
  73.  
  74. * ------------ Must reply if started from workbench.
  75. NoStdOut       TST.L      pr_CLI(A3)
  76.            BNE.B      Done
  77.            JSR      _LVOForbid(A6)
  78.            MOVEA.L      D3,A1
  79.            JSR      _LVOReplyMsg(A6)
  80. Done
  81. NoDos           MOVEQ      #00,D0
  82.            MOVEM.L      (A7)+,D2-D4/A2-A4/A6
  83.            RTS
  84. * Put these data in our code-segment.
  85. CurrWindow     dc.b      '*',0
  86. DosName        dc.b      'dos.library',0
  87. WbWindow       dc.b      'CON:100/75/400/45/PopUpMenu',0
  88.  
  89.            section      __MERGED,bss
  90.  
  91.            xref      _DOSBase
  92.            xref      _StdOut
  93.            xref      _PopUpSeg
  94.  
  95.            END
  96.  
  97.